package com.ccjq.jq173.product.dao;

import com.ccjq.jq173.product.po.Category;
import com.ccjq.jq173.product.po.Product;
import com.ccjq.jq173.product.po.Slider;

import java.util.List;

public interface ProductDao {
    /**
     * 1   完成 15行
     *获得表总记录数
     * @return  返回多少个数据
     */
    int getCount();

    /**
     *2    完成
     * @param categoryId   根据品牌ID
     * @return  返回记录数
     */
    int getCount(String categoryId);

    /**
     *3   完成
     * @param startRow  查询起始行
     * @param endRow  要查询的结束行数
     * @return  返回商品列表
     */
    List<Product> queryAll(int startRow, int endRow);

    /**
     *4   完成
     * @param categoryId  根据品牌ID
     * @param startRow  查询起始行
     * @param endRow  要查询的结束行数
     * @return  返回商品列表
     */
    List<Product> queryAll(String categoryId,int startRow, int endRow);

    /**
     * 5  完成
     * 根据商品Id获得商品详细信息
     * @param productId  商品ID
     * @return   返回商品详细信息
     */
    Product findProductById(String productId);

    /**
     * 6   使用热卖
     * 获取浏览推荐的商品
     * @return   返回商品列表
     */
    List<Product> getNominateProduct();

    /**
     * 7  完成
     * 查询商品品牌列表
     * @return  返回品牌列表
     */
    List<Category> queryAll4Category();

    /**
     * 完成
     * 查询热卖单品
     *
     * @return  返回热卖单品列表
     */
    List<Product> queryHotSale();

    /**
     * 完成
     * 查询上市新品
     *
     * @return 返回上市信息列表
     */
    List<Product> ququeryNeqwProduct();

    /**
     * 完成
     * 查询滚动广告
     *
     * @return  返回广告商品列表
     */
    List<Slider> querySliders();

    /**
     * 完成
     * 根据品牌ID获取品牌信息
     * @param categoryId  品牌Id
     * @return   返回品牌信息
     */
    Category queryCategoryById(String categoryId);

    /**
     * 完成
     * 根据商品Id 查询库存
     * @param productId   商品Id
     * @return   返回当前商品的库存量
     */
    int getStockByProductId(String productId);

    /**
     * 完成
     * 更新库存信息
     * @param productId   商品Id
     * @param quantity   库存量
     * @return   返回处理成功的行数
     */
    // int updateStock(String productId,int quantity);

    /**
     * 查询该用户在购物车是否已经添加过此商品
     * @param productId  商品ID
     * @param userId  用户ID
     * @return
     */
    //   boolean pdjl(String productId,String userId);

    /**
     * 小添加  向购物车第一次添加没有记录的商品
     * @param productId  商品ID
     * @param quantity 购物车中商品数量
     * @param userId 用户ID
     * @return
     */
    //  boolean addsp(String productId,int quantity,String userId);

    /**
     * 如果这个商品之前加入购物车，再添加购物车则是更新
     * @param productId
     * @param quantity
     * @param userId
     * @return
     */
    //   boolean updateCar(String productId,int quantity,String userId);
}
